
export { tsConfig } from '~/core/Configuration/TsConfig';
export { QueryMeta, StateManager } from '~/core/dsl';
export {
  P, Q,
  FlowPredicate, ValuePredicate, FileNodePredicate,
  RowPredicate, NodePredicate, CodeNodePredicate,
} from "~/core/dsl/Predicates";
export {
  AssignStmt, BinaryOperator, Constant,
  InvokeExpr, InvokeStmt, Variable, FieldReference,
  Statement, IfStmt, StringType, FunctionType,
  // TODO 还没实现
  // ArkFieldDefStmt, ArkMethodDefStmt, ArkClassDefStmt,
  // ArkComponentDefStmt, ArkDecoratorDefStmt, ArkImportStmt,
} from "qvog-types";
export { pattern } from '~/core/dsl/fluent/QueryDescriptor';
export { DataFlow, EulerFlow, DfgTraverse, HamiltonFlow, TaintFlow } from "~/lib/flow";

import { tsConfig as _tsConfig } from '~/core/Configuration/TsConfig';
import { QueryMeta, StateManager } from '~/core/dsl';
export namespace state {
  export const tsConfig = _tsConfig
  export const manager = StateManager
}

import { pattern as _pattern } from '~/core/dsl/fluent/QueryDescriptor';

export { Rule, RuleChain, QvogDslRuleChain, CpgRuleChain, RuleType } from "~/lib/rule_chain";
export { native, QvogHint } from 'qvog-dsl';
import { RuleChain as _RuleChain, RuleType as _RuleType, QvogDslRuleChain as _QvogDslRuleChain, CpgRuleChain as _CpgRuleChain } from "~/lib/rule_chain";
import { native as _native, QvogHint as _QvogHint } from 'qvog-dsl';
export namespace dsl {
  export const Meta = QueryMeta
  export const create = _pattern
  
  export const RuleChain = _RuleChain
  export const QvogDslRuleChain = _QvogDslRuleChain
  export const CpgRuleChain = _CpgRuleChain

  export type RuleType = _RuleType
  export const native = _native
  export type QvogHint = _QvogHint
}

import {
  P as _P, Q as _Q,
  FlowPredicate as _FlowPredicate, ValuePredicate as _ValuePredicate, FileNodePredicate as _FileNodePredicate,
  RowPredicate as _RowPredicate, NodePredicate as _NodePredicate, CodeNodePredicate as _CodeNodePredicate,
} from "~/core/dsl/Predicates";
export namespace predicates {
  export const P = _P
  export const Q = _Q
  export const FlowPredicate = _FlowPredicate
  export const ValuePredicate = _ValuePredicate
  export const FileNodePredicate = _FileNodePredicate
  export const RowPredicate = _RowPredicate
  export const NodePredicate = _NodePredicate
  export const CodeNodePredicate = _CodeNodePredicate
}

import {
  AssignStmt as _AssignStmt, BinaryOperator as _BinaryOperator, Constant as _Constant,
  InvokeExpr as _InvokeExpr, InvokeStmt as _InvokeStmt, Variable as _Variable, FieldReference as _FieldReference,
  Statement as _Statement, IfStmt as _IfStmt, StringType as _StringType, FunctionType as _FunctionType,
  // TODO 还没实现
  // ArkFieldDefStmt, ArkMethodDefStmt, ArkClassDefStmt,
  // ArkComponentDefStmt, ArkDecoratorDefStmt, ArkImportStmt,
} from "qvog-types";
export namespace types {
  export const AssignStmt = _AssignStmt
  export const BinaryOperator = _BinaryOperator
  export const Constant = _Constant
  export const InvokeExpr = _InvokeExpr
  export const InvokeStmt = _InvokeStmt
  export const Variable = _Variable
  export const FieldReference = _FieldReference
  export const Statement = _Statement
  export const IfStmt = _IfStmt
  export const StringType = _StringType
  export const FunctionType = _FunctionType
  // TODO 还没实现
  // export const ArkFieldDefStmt = ArkFieldDefStmt;
  // export const ArkMethodDefStmt = ArkMethodDefStmt;
  // export const ArkClassDefStmt = ArkClassDefStmt;
  // export const ArkComponentDefStmt = ArkComponentDefStmt;
  // export const ArkDecoratorDefStmt = ArkDecoratorDefStmt;
  // export const ArkImportStmt = ArkImportStmt;
}


